Design und Evaluierung von Steganographie für Voice-over-IP
نویسندگان
چکیده
Aufbauend auf den Ergebnissen vorangegangener Arbeiten wird in diesem Beitrag die Erweiterung eines Voice-over-IP-Frameworks um die Möglichkeit, geheime Kommunikation auf Basis von Steganographie durchzuführen, fortgesetzt. Kommunikationspartner einer VoIP-Verbindung sind durch Nutzung des erweiterten Frameworks in der Lage, während einer VoIP-Sitzung geheime Nachrichten auszutauschen. Diese Arbeit greift auf bekannte Verfahren zum Verschlüsseln und Einbringen von steganographischen Nachrichten zurück. Dabei stellt jedoch einerseits das Einbetten von Informationen in Streaming-Daten eine neue Herausforderung dar, da beispielsweise Start und Ende der Übertragung flexibel synchronisiert werden müssen, andererseits muss die Verwendung von Sprachdaten über einen fehlerbehafteten Kanal mit eingeschränkter Qualität berücksichtigt werden. Erste Tests sollen Ergebnisse hinsichtlich der Bestimmung von Nutzund Paketkapazität, sowie der Fehlerrate der Übertragung liefern, um die Anwendbarkeit von Steganographie auf Sprachdaten innerhalb einer paketbasierten Streaming-Applikation zu evaluieren. Des Weiteren erfolgt eine erste Transparenzuntersuchung des unterschiedlichen Verhaltens von Sprachund Musikdaten hinsichtlich der Einbettung eines LSB-Wasserzeichens in PCM kodierte Audiodaten. Diese Untersuchung wird sowohl für die Transparenz bezüglich der Hörbarkeit als auch der einer Steganalyse (Detektierbarkeit) vorgenommen. 1 Einführung und Motivation Der Begriff Steganographie bezeichnet die Wissenschaft des Versteckens von Informationen in einem Trägermedium. Dabei wird eine beliebige Information in einem Trägermedium (Cover) versteckt, so dass diese nicht wahrnehmbar als auch nicht detektierbar ist. Für den Bildund Audiobereich existiert eine Vielzahl von Applikationen, siehe z.B. [1][2][3][4], wobei eine ebenso große Zahl von Algorithmen existiert, welche das Ziel haben, die Verwendung von Steganographie in Bildern nachzuweisen, z.B. [5][6][7]. Insgesamt sind jedoch nur wenige steganographische Entwicklungen zu finden, welche als Trägermedium gezielt Sprachdaten benutzen, siehe zum Beispiel in [17], obwohl sich, zum Beispiel durch die verstärkte Nutzung von Voiceover-IP (VoIP) als Ablösung von Telefonanlagen, hier hervorragende Ansätze für AudioSteganographie bieten. Ziel unserer Arbeit ist es deshalb zu zeigen, wie bekannte steganographische Ansätze auf VoIP-Applikationen angewendet werden können, und welche Ergebnisse bezüglich Fehlertoleranz bei der Übertragung der Nachricht erzielt werden. Hinter VoIP verbirgt sich die Digitalisierung und Kompression eines analogen Audio-Signals (vorzugsweise Sprache), welches in Paketen über eine Netzwerkverbindung zu einem eindeutigen Ziel (IP-Adresse) übermittelt wird. Dort erfolgt der Prozess in umgekehrter Reihenfolge und aus den digitalen Daten wird ein hörbares, analoges Signal, die Sprache, dekodiert. Die Größe des Netzwerkes spielt dabei keine Rolle, somit ist auch ein weltweites Telefonieren möglich, daher wird VoIP auch oftmals mit Internet-Telefonie bezeichnet. Die effektive Nutzung von VoIP ist relativ neu und damit ist auch eine stetig größer werdende Zahl von Softwareund Hardware-VoIP-Applikationen nicht überraschend. Aufgrund der stetig wachsenden Verbreitung ist in einem VoIP-Kanal ein äußerst interessantes Trägermedium zur steganographischen Kommunikation zu sehen, was allerdings neue Herausforderungen für die Anwendung klassischer steganographischer Techniken bedeutet. Im Gegensatz zu konventionellen Verfahren für Audiound Bilddateien stellt sich bei steganographischen Anwendungen für VoIP das Problem der Übertragung von kontinuierlichen Datenströmen (Streaming). Die einzubettende Nachricht muss mit Startund Endmustern versehen werden, um sie im Datenstrom beim Empfänger lokalisieren zu können. Die maximale Kapazität ist bei stream-basierter Steganographie kein fester Wert, sondern resultiert unmittelbar aus der Dauer der Kommunikation und ist somit zeitabhängig. Zusätzlich müssen Techniken zur Sicherung der Integrität der Nachricht verwendet werden, um die vollständige und korrekte Übertragung der Daten erkennen zu können. Für unsere Untersuchungen haben wir uns für das VoIP-Framework JVOIPLIB 1.3.0 [8] entschieden, weil diese Laufzeitbibliothek plattformunabhängig ist und unter der GPL (Gnu Public License) genutzt werden kann. Die Erweiterbarkeit der Bibliothek und die Funktionstüchtigkeit des implementierten Steganographie-Verfahrens auf Sprachdaten ist bereits in [9] mittels bekannter LSB-Steganographie gezeigt worden. Nach einer Überarbeitung des Designs der VoIP-Applikation folgen für die implementierte Software Tests, die Aussagen über die Nicht-Detektierbarkeit und das Fehlerverhalten zulassen. Das Paper ist wie folgt gegliedert: In Kapitel 2 wird zunächst in die Grundlagen anhand einer Formalisierung des Themas eingeführt, wobei auf bekannte Verfahren aufgesetzt und deren Anwendbarkeit auf VoIP beschrieben wird. Kapitel 3 beschreibt das Design der VoIP-Software auf Basis der verwendeten Komponenten. Das vierte Kapitel behandelt die Testdurchführung und –auswertung von ersten Tests. Kapitel 5 liefert eine Zusammenfassung und gibt einen kurzen Ausblick auf noch offene Herausforderungen. 2 Formalisierung von VoIP-Software mit Steganographie-Kanal Der von uns entwickelte schematische Aufbau einer aktiven VoIP-Verbindung mit Steganographie-Erweiterung wurde bereits in [9] detailliert beschrieben. Dabei nutzen zwei Kommunikationspartner (A und B) eine VoIP-Verbindung um eine nicht-verdächtige Kommunikation aufzubauen. Zusätzlich wird von A gleichzeitig eine geheime Nachricht an B übermittelt. Das Szenario der beiden Kommunikationspartner lässt sich durch je zwei Parameter beschreiben. Sowohl Sender als auch Empfänger wählen aus einer Menge von Codecs SC = {sc1,sc2,sc3,..,sci | i∈N} (set of codecs) je einen Codec für die Sprachkompression aus. Aus der Menge aller existierenden steganographischen Einbettungsalgorithmen SE = {se1,se2,se3,...,sei | i∈N} (embedding) legt der Sender sich auf einen Algorithmus in diesem hier betrachteten Fall Einbettung in die LSBs (Least Significant Bits) fest. Ebenso muss der Empfänger einen Algorithmus aus der Menge aller Auslesealgorithmen SR = {sr1,sr2,sr3,...,sri | i∈N} (retrieval) spezifizieren. Sind auf beiden Seiten die Codecs und Algorithmen zum Einbettung/Auslesen passend gewählt, so kann B die von A gesendete Nachricht wiederherstellen. Damit bei einem gebrochenem Einbettungs-/Auslesealgorithmus die geheime Nachricht für Dritte nicht lesbar ist, sollte aus der Menge aller kryptographischen Verschlüsselungsverfahren CM = {cm1,cm2,cm3,...,cmi | i∈N} (cryptographic method) ein zuverlässiges Verfahren ausgewählt werden, mit dem die Nachricht verschlüsselt wird. Zur Verschlüsselung ist ein Schlüssel K notwendig der in eindeutiger Abhängigkeit zu einer Passworteingabe pw stehen sollte. Damit sowohl kurze als auch (beliebig) lange Passwörter eindeutig auf eine feste Schlüssellänge abgebildet werden, wird vor Implementierung aus der Menge aller kryptographischen Hashfunktionen SH = {sh1,sh2,sh3,...,shi | i∈N} (set of cryptophic hash functions) eine Hashfunktion ausgewählt werden. Nach vorangegangener Verschlüsselung oder Kompression liegen die Audiodaten annähernd gleich verteilt vor. Damit folgen die LSBs der Audio-Samples nach der Einbettung einer annähernden Gleichverteilung. Im Gegensatz dazu sind die Werte der Samples während eines VoIP-Gesprächs im Allgemeinen nicht gleich verteilt. Zwischen Worten und Sätzen folgen teils längere Intervalle von Stille, idealisiert also Amplitude 0 bei verwendeter PCM Kodierung. Damit die steganographische Kommunikation nicht von unbekannten Dritten detektiert werden kann, ist es sinnvoll die verschlüsselte Nachricht nicht linear, sondern durch Mischen oder Partitionieren verteilt im Audiostrom einzubetten. Ein Algorithmus aus der Menge der MischAlgorithmen SM = {sm1,sm2,sm3,...,smi | i∈N} (mixing method) übernimmt die Aufgabe das Signal zu partitionieren und zeitlich zu streuen. Für die Zerstreuung der Bits sind Zufallszahlen notwendig, welche mit einem Zufallszahlengenerator (pseudo random number generator, PRNG) gebildet werden. Diese sollten in jedem Fall einer Gleichverteilung unterliegen, um eine gleichmäßige Verteilung der Nutzdaten (Bits) über die Menge von Samples zu garantieren. Aus der Menge der Zufallszahlengeneratoren SP = {sp1,sp2,sp3,...,spi | i∈N} (set of pseudo random number generators) ist ein solcher auszuwählen, der eine Gleichverteilung und hohe Geschwindigkeit gewährleisten kann. Man kann von einem Angriff auf das Steganogramm sprechen, wenn dieses von einem potentiellen Angreifer auf Auffälligkeiten hin untersucht wird. Entsprechend versucht ein Angreifer C in der VoIP-Kommunikation zwischen A und B, die aus einzelnen Paketen mit komprimierter Sprache besteht, den Verdacht einer geheimen Kommunikation zu bestätigen oder abzuweisen. Gegebenenfalls kann er bei Verdacht auf versteckte Kommunikation versuchen, das Steganogramm zu stören oder zu löschen. Um den Verdacht überprüfen zu können, müssen dem Angreifer C die Menge der Codecs sowie eine Teilmenge aus der Menge aller Angriffe A = {a1,a2,a3,...,ai | i∈N} (attacks) zur Verfügung stehen. Damit C in der Lage ist, Angriffe durchzuführen muss er eine Methode aus der Menge alle Detektionsverfahren für VoIP-Verbindungen SD = {sd1,sd2,sd3,...,sdi | i∈N} (set of detectors for voip connections) auswählen. Diese kann dann auf die Menge aller VoIP-Verbindungen SV = {sv1,sv2,sv3,...,svi | i∈N} (set of voip connections) angewendet werden. 3 Design der VoIP-Szenario-Komponenten Zur besseren Übersicht haben wir das Design der einzelnen VoIP-Szenario-Komponenten in die Module Sender, Empfänger und Angreifer unterteilt. Diese Module werden im Folgenden jeweils separat erörtert. Der Sender: Da es sich um eine prototypische Entwicklung für erste Tests handelt, wird die zu unterstützende Menge von Codecs zunächst auf einen Codec beschränkt SC = {sc1}. Bei dem unterstützten Codec sc1 handelt es sich RAW PCM (8.000 Hz, 8 Bit). Als Einbettungsalgorithmus se1 ∈ SE wird wie bereits erwähnt ein LSB-Ortsraum-Verfahren gewählt (angelehnt an [1]), da sowohl PCM als auch LSB weit verbreitete Verfahren mit hoher Leistung und geringer Komplexität darstellen. Das Einbetten/Auslesen muss ohne Verzögerung und erhöhte Systemauslastung erfolgen, während die Kommunikationspartner A und B ohne Wartepausen und Störungen in der Übertragung miteinander sprechen können. Passend zur Einbettung wird ein Auslesealgorithmus definiert, der es ermöglicht, die auf der Senderseite eingebrachte Nachricht wiederherzustellen. Als kryptographische Verschlüsselungsmenge wird cm1 = {Twofish} gewählt [10] und als Hashfunktion Tiger sh1 = {Tiger} [11]. Diese europäische Entwicklung von Eli Braham und Ross Anderson wird relativ selten verwendet, erzeugt aber einen Hashwert mit 192 Bit Länge und gilt derzeit als sicher. Der Algorithmus wurde speziell für 64-Bit-Prozessoren (Alpha) entwickelt und erreicht dort die höchste Performanz von 390 Takten pro zu verschlüsselndem Byte. Er liefert jedoch auch auf 32-Bit-Maschinen die höchste Leistung seiner Klasse, so dass er allein aus Gründen der Performance eine geeignete Wahl darstellt, um den Anforderungen an echtzeitfähiges Streaming zu genügen. Der aus dem Passwort pw erzeugte Hashwert mit fixer Länge (192 Bit) ist zugleich der Schlüssel K, welcher für die Twofish-Verschlüsselung benutzt wird. Ein Nachteil der CTR-Modus-Verschlüsselung (counter mode) ist, dass Fehler oder Manipulationen an dem Chiffrat während der Entschlüsselung nicht zu Fehlern führen und daher nicht erkannt werden. Generell besteht bei Übertragungen über ein Netzwerk die Gefahr, dass Pakete auf Grund eines überlasteten Netzwerkverkehrs nicht ankommen bzw. vom Router nicht bearbeitet werden können, d.h. es kann zu Paketverlusten (packet loss) kommen. Zudem ist es möglich, dass ein Angreifer den Netzwerkverkehr abhört (sniffing) und Manipulationen an den Daten vornimmt. Diese Tatsachen machen es daher erforderlich einen Kontrollmechanismus zu integrieren. Über die verschlüsselte Nachricht wird ein Hashwert gebildet, der zur Integritätsprüfung der Nachricht (CHK) genutzt und mit der eigentlichen Nachricht verknüpft wird. Für die Prüfsumme wird die Hashfunktion MD5 verwendet, da mit einer Länge von 128 Bit die zusätzlich übertragenen Daten relativ gering bleiben. Auf der Empfängerseite wird ebenfalls ein Hashwert über die empfangenen Daten gebildet und mit dem Übertragenen verglichen. Sind beide identisch kann davon ausgegangen werden, dass die Nachricht korrekt übertragen worden ist. Da neben der direkten Kommunikation von A und B durchaus auch eine VoIP-Konferenz (multicasting) mit mehreren Teilnehmern möglich sein könnte, besteht eine notwendige Bedingung darin, dass nur der/die Empfänger welche das Wissen um das korrekte Passwort haben, auch die Nachricht empfangen und entschlüsseln können. Das bedeutet: Sender und Empfänger müssen sich auf Synchronisationsmuster einigen, so dass der Empfänger feststellen kann, ob es sich um Stego-Daten handelt bzw. an welcher Position die Nachricht beginnt und endet. Als Synchronisation verwenden wir zwei mit BOM (Begin Of Message) und EOM (End Of Message) bezeichnete Bitmuster. Diese voneinander verschiedenen Bitmuster werden in Abhängigkeit zu dem Schlüssel K gebildet, der wiederum aus dem Passwort pw erzeugt wird. Die Synchronisationsmuster BOM und EOM, die geheime Nachricht und der Hash-Wert (CHK) werden zur Integritätsprüfung zu einer Nachricht M zusammengefasst werden. Die Nachrichtenbits werden in den LSBs der AudioSamples eines VoIP-Paketes eingebettet, wobei das Paketintervall (frame) IS mit 50 Hz (20 ms) als übliche Frame-Länge in [12] definiert ist. ITU-Studien haben ergeben, dass bei der Übertragung von Sprachdiensten die Verzögerungszeit und das Echo eine besondere Bedeutung für die Qualität der Übertragung haben. Unter der Annahme, dass die zugrunde liegende Paketgröße nicht fix, sondern variabel ist, errechnet sich die maximale Kapazität eines Paketes CP in Bit, d.h. bei Nutzung aller möglichen LSB-Werte, für eine Abtastrate (sampling rate) Psamp mit CP = Psamp / IS. In Tabelle 1 sind für den Codec sc1 typische Abtastraten und die daraus resultierenden maximalen Kapazitäten, sowie die rein rechnerisch ermittelte Dauer Tt der Übertragung einer 1 Mbyte großen Nachricht dargestellt. Dabei wird vorausgesetzt, dass weder Hardware(z.B. Netzwerk, Netzwerkkarte) noch Software-Komponenten (VoIP-Bibliothek, Netzwerkkartentreiber) die Kapazität und Dauer der Übertragung limitieren. Psamp in Hz CP = 100% in Bits/s CP = 100% in Kbytes/h Tt in min
منابع مشابه
Voice over IP als Web Service
Zusammenfassung: Die Umstellung der klassischen leitungsgebundenen Telefontechnik auf eine moderne und auf längere Sicht kostengünstigere Voice over IP Infrastruktur rückt zunehmend ins Blickfeld der Entscheidungsträger in mittleren und größeren Unternehmen. Doch ein unter Umständen hoher Integrationsund Administrationssaufwand bleibt bei den bisher angebotenen Lösungen auf Basis von H.323 und ...
متن کاملFrüherkennung von verdeckten Kanälen in VoIP-Kommunikation
1. Einleitung Der potentielle Schaden, der durch den Einsatz einer Maßnahme zur geheimen Kommunikation, wie sie die Steganographie darstellt, droht, liegt vor allem im Bereich der unautorisierten Übermittlung von vertraulichen Daten. Die Nutzung von steganographischen Maßnahmen zur Sicherung der Geheimhaltung von Kommunikationskanälen zielt oft darauf ab, bestehende Kommunikationsbeschränkungen...
متن کاملWLAN Steganographie: Neue Ansätze und deren Bewertung
In der Vergangenheit wurden zwei unterschiedliche Ansätze für die Nutzung des IEEE 802.11 (WLAN) Protokolls als Träger für steganographische Übertragungen vorgestellt. Durch Krzysztof Szczypiorski [Szczypiorski2003] wurde 2003 ein Ansatz betrachtet, welcher zur Erzeugung eines versteckten Kommunikationskanals in einem WLAN korrumpierte Pakete benutzt. Ein zweiter Ansatz von Kraetzer et al. Aus ...
متن کاملInteraction Design Patterns für NFC-basierte Electronic-Data-Capture-Anwendungen
Die Arbeit beschäftigt sich mit der Gestaltung von Interaction Design Patterns für Near Field Communication (NFC)-basierte Electronic Data Capture Anwendungen. Basis hierfür bilden das Design, die Entwicklung und die Evaluierung zweier mobiler NFC-basierter Anwendungen zur Selbstbewertung des Gesundheitszustandes. Als Domäne für die Anwendung der Interaction Design Patterns wird das Gesundheits...
متن کاملEvaluierung und Aufwandsabschätzung bei der Integration von Open Source Software-Komponenten
In dieser Arbeit wird ein Ansatz zu einem Aufwandsschätzungmodell für die Integration von Open Source Komponenten vorgestellt. Ausgehend von der Entwicklung einer Klassifikation unterschiedlicher Arten dieser Integration werden mögliche Operationalisierungen für die Evaluierung und darauf basierend die Aufwandsschätzung vorgeschlagen.
متن کامل